import axios from 'axios'

const API_URL = 'http://localhost:3004/api'

// 创建axios实例
const api = axios.create({
  baseURL: API_URL,
  headers: {
    'Content-Type': 'application/json'
  }
})

// 请求拦截器：添加token
api.interceptors.request.use(
  config => {
    const token = localStorage.getItem('token')
    if (token) {
      config.headers.Authorization = `Bearer ${token}`
    }
    return config
  },
  error => {
    return Promise.reject(error)
  }
)

// 响应拦截器：处理错误
api.interceptors.response.use(
  response => response.data,
  error => {
    if (error.response?.status === 401) {
      // 未授权，清除token并跳转到登录页
      localStorage.removeItem('token')
      window.location.href = '/login'
    }
    return Promise.reject(error)
  }
)

// 宠物服务
export const petService = {
  // 获取所有宠物
  getAll: () => api.get('/pets'),
  
  // 获取单个宠物
  getById: (id) => api.get(`/pets/${id}`),
  
  // 创建宠物
  create: (data) => api.post('/pets', data),
  
  // 更新宠物
  update: (id, data) => api.put(`/pets/${id}`, data),
  
  // 删除宠物
  delete: (id) => api.delete(`/pets/${id}`)
}

// 商品服务
export const productService = {
  // 获取所有商品
  getAll: () => api.get('/products'),
  
  // 获取单个商品
  getById: (id) => api.get(`/products/${id}`),
  
  // 创建商品
  create: (data) => api.post('/products', data),
  
  // 更新商品
  update: (id, data) => api.put(`/products/${id}`, data),
  
  // 删除商品
  delete: (id) => api.delete(`/products/${id}`)
}

// 用户服务
export const userService = {
  // 用户登录
  login: (credentials) => api.post('/users/login', credentials),
  
  // 用户注册
  register: (userData) => api.post('/users/register', userData),
  
  // 获取当前用户信息
  getCurrentUser: () => api.get('/users/profile'),
  
  // 更新用户信息
  updateProfile: (data) => api.put('/users/profile', data)
}

// 购物车服务
export const cartService = {
  // 获取购物车
  getCart: () => api.get('/cart'),
  
  // 添加商品到购物车
  addItem: (data) => api.post('/cart', data),
  
  // 更新购物车商品数量
  updateItem: (id, data) => api.put(`/cart/${id}`, data),
  
  // 删除购物车商品
  removeItem: (id) => api.delete(`/cart/${id}`)
}

// 订单服务
export const orderService = {
  // 获取所有订单
  getAll: () => api.get('/orders'),
  
  // 获取单个订单
  getById: (id) => api.get(`/orders/${id}`),
  
  // 创建订单
  create: (data) => api.post('/orders', data),
  
  // 更新订单状态
  updateStatus: (id, status) => api.put(`/orders/${id}/status`, { status })
}

export default api 